请在index.html文件中,编写arraysSimilar函数,实现判断传入的两个数组是否相似。具体需求:
1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。
2. 数组的长度一致。
3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.
当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过"。
-->
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<script type="text/javascript">
* param1 Array
* param2 Array
* return true or false
*/
function arraysSimilar(arr1, arr2){
var t1=[];
var t2=[];
var flag=true;
if (arr1 instanceof Array && arr2 instanceof Array && arr1.length == arr2.length ) {
for (var i = arr1.length - 1; i >= 0; i--) {
if (Object.prototype.toString.apply(arr1) !==Object.prototype.toString.apply(arr2) ) {
flag=false;
break;
}
}
}
if (flag) {
return true;
}
return false;
}
function arraysSimilar(arr1, arr2) {
var t1 = [];
var t2 = [];
if (arr1 instanceof Array && arr2 instanceof Array && arr1.length === arr2.length) {
for (var i in arr1) {
t1.push(getType(arr1[i]));
t2.push(getType(arr2[i]));
}
return t1.sort().toString() === t2.sort().toString();
} else {
return false;
}
}
function getType(o) {
var _opt = Object.prototype.toString.apply(o);
/\[object (\w+)\]/.test(_opt);
return RegExp.$1;
}
</script>
<script src="testData.js"></script>
</body>
</html>